package hcn.service.medicalrecord;



import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.medicalrecord.bean.req.*;
import hcn.protocol.medicalrecord.bean.resp.GetDetailResp;
import hcn.protocol.medicalrecord.bean.resp.QueryAuditListResp;
import hcn.protocol.medicalrecord.bean.resp.QueryHistoryListResp;
import hcn.protocol.medicalrecord.bean.resp.QueryRegisterListResp;
import hcn.util.BaseResponse;

/**
 * @author LiuLang
 */
public interface MedicalRecordService {

    /**
     * 查询待审核病案授权申请列表(内部接口-新增)
     *
     * @param req
     * @return QueryAuditOpnAuthXmlResp
     */
    @RpcService
    QueryAuditListResp queryAuditList(QueryAuditListReq req) throws ControllerException;

    /**
     * 查询历史审核病案授权申请列表
     *
     * @param req
     * @return QueryHistoryListXmlResp
     */
    @RpcService
    QueryHistoryListResp queryHistoryList(QueryHistoryListReq req) throws ControllerException;


    /**
     * 查询我的登记病案授权申请列表
     */
    @RpcService
    QueryRegisterListResp queryRegisterList(QueryRegisterListReq req) throws ControllerException;

    /**
     * 查询病案授权申请详情
     */
    @RpcService
    GetDetailResp getDetail(GetDetailReq req) throws ControllerException;

    /**
     * 提交病案授权申请审核结果
     */
    @RpcService
    BaseResponse audit(AuditReq req) throws ControllerException;
}
